package day4;

import java.util.Scanner;

import org.junit.Test;

public class ArrayDemo {
	
	public static void main(String[] args) {
		int[] array = new int[4];
		array[0] = 23;
		array[1] = 45;
		array[2] = 3;
		array[3] = 14;
		// 假设array[0]是最大的
		int max = array[0];
		for (int i = 0; i < array.length; i++) {
			if (array[i] > max) {// 遍历过程中出现比假设的max还要大的，就更新max的值
				max = array[i];
			}
		}
		
		System.out.println("最大值：" + max);
	}

	@Test
	public void test1() {
		// assign
		int num = 3;
		// 1、存放整数类型的数组
		// 2、长度是4
		// 3、只能存放int类型
		int[] array = new int[4];
		array[0] = 23;
		array[1] = 45;
		array[2] = 3;
		array[3] = 14;
		
		int length = array.length;
		System.out.println("lenght: " + length);// 4
		
		// 数组最主要的操作就是遍历
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
		
		for (int i = array.length - 1; i >= 0; i--) {
			System.out.println(array[i]);
		}
		
//		for (int i = 0; i <= array.length - 1; i++) {
//			System.out.println(i);
//		}
	}
	
	@Test
	public void test2() {
		// 引用数据类型：1、类  2、数组  3、接口
		int[] array1 = new int[4];
		double[] array2 = new double[4];
		char[] array3 = new char[4];
		String[] array4 = new String[4];
	}
	
	@Test
	public void test3() {
		int[] array = new int[4];
		array[0] = 23;
		array[1] = 45;
		array[2] = 3;
		array[3] = 14;
		int max = array[0];
		for (int i = 0; i < array.length; i++) {
			if (array[i] > max) {
				max = array[i];
			}
		}
		
		System.out.println("最大值：" + max);
	}
	
	@Test
	public void test55() {
		int[] array = new int[4];
		array[0] = 23;
		
		int[] array1 = {34, 6, 7, 7};
		int[] array2 = new int[] {34, 6, 7, 7};
	}
	
	@Test
	public void test66() {
		int[] array = new int[4];
		array[0] = 23;
		array[1] = 45;
		array[2] = 3;
		array[3] = 14;
		// java.lang.Array Index OutOf Bounds Exception: 4
		for (int i = 0; i <= array.length; i++) {
			System.out.println(array[i]);// array[4]
		}
	}
	
	// int[] array = {40, 17, 21, 1};
	@Test
	public void test33() {
		int[] array = {40, 17, 21, 1};
		// 这个i不是下标，表达的是比较第几轮,
		// 每一轮就是把剩下的元素里面最大的冒出来
		for (int i = 1; i <= array.length - 1; i++) {
			for (int j = 0; j < array.length - i; j++) {// 代表这一轮比较多少次
				if (array[j] > array[j + 1]) {// 如果左边的比右边的大交换两个数的值
					int temp = array[j];
					array[j]  = array[j + 1];
					array[j + 1] = temp;
				}
			}
		}
		
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
	}
	
	@Test
	public void test88() {
		// char[] array = ['a' , 'b', 'c', 'b' , 'a'];
		Scanner scanner = new Scanner(System.in);
		String str = scanner.nextLine();// "abcba34$$%"
		System.out.println(str);// "abc"
		char[] array = str.toCharArray(); // ['a', 'b', 'c']
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
			// 'A' < array[i] < 'Z'
		}
	}
	
	
//	18、题目：企业发放的奖金根据利润提成。利润(I)低于或等于10万元时，奖金可提10%；
//	利润高于10万元，低于20万元时，低于10万元的部分按10%提成，高于10万元的部分，
//	可可提成7.5%；20万到40万之间时，高于20万元的部分，可提成5%；40万到60万之间时高于40万元的部分，
//	可提成3%；60万到100万之间时，高于60万元的部分，可提成1.5%，
//	高于100万元时，超过100万元的部分按1%提成，从键盘输入当月利润，求应发放奖金总数？
	@Test
	public void test() {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入当月的利润：");
		double profit = scanner.nextDouble();
		double bonus = 0;
		if (profit <= 10) {
			bonus = profit * 0.1;
		} else if (profit > 10 && profit <= 20) {
			bonus = 10 * 0.1 + (profit - 10) * 0.075;
		} else if (profit > 20 && profit <= 40) {
			bonus = 10 * 0.1 + 10 * 0.075 + (profit - 20) * 0.05;
		}
		
		System.out.println("奖金：" + bonus);
	}
	
	
	
}
